package cn.hchaojie.camp.day07;

import org.junit.Test;

public class DemoModifier {
	@Test
	public void testHashCode() {
		System.out.println("abc".hashCode());
		System.out.println("abc".hashCode());
		System.out.println("cbd".hashCode());
		
	}
	
	@Test
	public void testPrint(){
		Employee e = new Employee();
		e.setAge(18);
		e.setName("小王");
		System.out.println(e);	// 默认调用对象的toString方法
		
		Employee e2 = new Employee();
		e2.setAge(18);
		e2.setName("小王");
		
		Employee e3 = e2;	// e3指向了e2同样的一个对象
		System.out.println(e3.equals(e2));
		
		Employee e4 = null;
		System.out.println(e4.equals(e4));
		
		// 判断对象地址是否相同（同样一个对象）
		System.out.println(e == e2);  // 用相等取比较两个引用，判断引用是否指向同样的对象
		
		
		
		// 判断对象内容是否相同
		System.out.println(e.equals(e2));
		
		
		
	}

	@Test
	public void test() {
		Employee e = new Employee();
		e.setName("");
		e.name = "";		// 不建议把成员遍历定义成public的
	}
	
	@Test
	public void testProtected() {
		Employee e = new Employee();
		e.salary = 10000;	// protected成员变量可以在同一个包内访问
		
	}
	
	@Test
	public void testPackageModifier() {
		Employee e = new Employee();
		e.foo();		// 同一个包内
	}
	
	@Test
	public void testSingleton() {
		DemoSingleton instance = DemoSingleton.getInstance();
	}
}
